#ifndef _CONCRETEMEDIATOR_H_
#define _CONCRETEMEDIATOR_H_

#include "Colleague.h"
#include "Mediator.h"

#include <vector>
using namespace std;

class ConcreteMediator : public Mediator
{
public:
    void add(Colleague* colleague)
    {
        _colleagueList.push_back(colleague);
    }

    void send(string message, Colleague* colleague) {
        for (auto value : _colleagueList) {
            if (value != colleague) {
                value->Notify(message);
            }
        }
    }

private:
    vector<Colleague*> _colleagueList;
};

#endif // _CONCRETEMEDIATOR_H_